Обычно данные в организациях хранятся «разрозненно». В бухгалтерии одна система хранения, в логистике и прочих отделах — другая. Желательно, чтобы эти системы хранения не пересекались — и в этом есть логика. Так, например, информация о финансовых поступлениях и налоговых отчислениях не будет доступна никому, кроме сотрудников отдела бухгалтерии.
Но эта «разрозненность» вызывает много вопросов. Например, как подготовить аналитику состояния компании за год? Как объединить данные из разных источников и информационных систем в одном месте? Ведь база данных (БД) склада хранит только информацию о складских запасах, а база отдела кадров — данные о сотрудниках. Как их очистить, структурировать и анализировать? На помощь приходит Data Warehouse.
CQRS — command & query responsibility segregation
CurrectAccountState:
AccountJournal
Data Warehouse (DWH) — это хранилище, в которое из разных систем хранения собираются исторические данные компании. Это некая библиотека, в которой упорядочена и каталогизирован весь объем информации. Она может быть в основе, например, платформы обработки данных.
Признаки и особенности DWH:
DWH называют хранилищем данных или корпоративным хранилищем данных (КХД). Это хранилище структурированных данных, с одной широкой или большим количеством отдельных таблиц.
DWH не только хранят данные, но и выполняют вычисления, так как аналитические — например, OLAP — запросы зачастую требуют много ресурсов. Например, представим гигантский ангар, заставленный полками вдоль и поперек, а полки — вещами в коробках, пакетах, пленке. Здание поделено на секции для канцтоваров, ГСМ, средств гигиены и прочего.
Если просто использовать ангар как склад — это будет простое хранилище. Но если добавить на все коробки штрих-коды, а на входе и выходе — лазерные сканеры для их считывания, то условный завхоз сможет отслеживать насколько заполнены стеллажи. Это полезно, если ему нужно прогнозировать, например, расход материалов — чтобы они не простаивали и не перегружали стеллажи. Такой прокачанный ангар — это хранилище данных, DWH.

В традиционном виде часто архитектура хранилища данных состоит из трех уровней.
Одна из моделей проектирования Data Warehouse — «слоеный пирог», построенный по архитектуре LSA, Layered Scalable Architecture. Она реализует логическое деление структур с данными на несколько функциональных уровней:
Визуально LSA-архитектуру Data Warehouse можно представить так:

Существует две модели, описывающие то, как должны быть устроены хранилища данных. Их идейные вдохновители — Билл Инмон, «отец хранилищ данных», и Ральф Кимбалл, идейный лидер в области хранилищ многомерных данных.
По модели Инмона (Inmon) данные из источников должны поступать в хранилище после процесса ETL (Extract, Transformation, Load).

По модели Кимбалла (Kimball) после процесса ETL данные загружаются в витрины данных, а объединение витрин создает концептуальное (а не фактическое) хранилище данных.

От выбора двух подходов будет зависеть исходный результат. Представим хранилище в виде картотеки — библиотечного шкафа с карточками, в котором хранятся данные.
При создании DWH также следует учитывать и специфику данных, взаимосвязи внутри групп данных, связи между ними, типы преобразования данных, частоту обновления, взаимосвязь между объектами хранилища, процессы передачи, резервного копирования, восстановления.
Базы данных и хранилища данных — это разные вещи
Многие базы данных — OLTP, рассчитаны на операционную нагрузку, поэтому они выполняют много небольших операций записи, изменения и удаления. В остальном, можно выделить следующие признаки для баз данных:
С Data Warehouse ситуация другая, хранилище:
DWH — единый источник информации, основанный на структурированных и неструктурированных данных бизнеса. Инструмент, который используется для аналитики и обнаружения закономерностей и взаимосвязей в данных, которые появляются со временем.
Витрины данных и хранилища данных — разные вещи
Витрины нужны для того, чтобы предоставлять обработанные данные в BI- или отчетную систему, наряду с этим:
Озера данных и хранилища данных — не одно и то же
Они отличаются архитектурно и функционально.

«Озера данных», или Data Lake, используют для хранения неформатированных, неструктурированных данных из большого количества внешних источников. Они могут строиться, например, на базе облачного хранилища (S3) и быть дешевле в работе. DWH же предназначены не только для хранения, но и для анализа данных.
Подробнее о разнице между Data Lake и Data Warehouse читайте по ссылке →
Мы уже определили, что хранилище данных — это информационная система, предназначенная для подготовки отчетов и бизнес-анализа. Наряду с этим DWH помогает: